﻿//Browser tipini alma
function BrowserTipi() {
    if (navigator.appName.indexOf('Microsoft') != -1)
        return 'IE'
    else if (navigator.appName.indexOf('Netscape') != -1)
        return 'Netscape'
    else return 'IE';
}

function getObj(sender) {
    if (BrowserTipi() == 'IE') {
        return document.getElementById(sender);
    }
    else {
        return document.getElementsByName(sender)[0];
    }
}

function VeriGirildiTarihIkili(evt, gonderen) {
    if (!isNumberKey(evt)) return false;

    if (SeciliTekstiAl(gonderen) != '') gonderen.value = '';

    if ((IlgiliText != 'yil1' && gonderen.value.length >= 2) || (IlgiliText == 'yil1' && gonderen.value.length >= 4)) {
        var sonrakiTxtbx;
        switch (IlgiliText) {
            case 'gun1': sonrakiTxtbx = 'TextBoxAy1'; break;
            case 'ay1': sonrakiTxtbx = 'TextBoxYil1'; break;
            case 'yil1': sonrakiTxtbx = 'TextBoxGun2'; break;
            case 'gun2': sonrakiTxtbx = 'TextBoxAy2'; break;
            case 'ay2': sonrakiTxtbx = 'TextBoxYil2'; break;
            default: return; break;
        }
        var kont = KontrolAdiniDuzenleTarihIkili(sonrakiTxtbx);
        var objTxtBx = getObj(kont); 
        objTxtBx.focus();
        objTxtBx.select();

        if (BrowserTipi() != 'IE') {
            var charCode = (evt.which) ? evt.which : event.keyCode
            objTxtBx.value = String.fromCharCode(charCode);
        }
    }
}

var DizinObje;
var IlgiliText;

function TextBoxFocusTarihIkili(kontrol, ilgiliText) {
    var ucAdi = kontrol.id;
    var parca = ucAdi.split('_');
    var kntrl = parca[parca.length - 1];
    DizinObje = ucAdi.replace(kntrl, "");
    IlgiliText = ilgiliText;
}

function KontrolAdiniDuzenleTarihIkili(kontrol) {
    kontrol = DizinObje + kontrol;
    kontrol = kontrol.replace(/_/g, '$');
    return kontrol;
}

function TarihDegisti1(e) {
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun1'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy1'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil1'));

    var objTar1 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar1'));
    objTar1.value = objGun.value;

    var parca = objGun.value.split('.');
    if (parca.length == 0) parca = objGun.value.split('/');
    if (parca.length == 0) parca = objGun.value.split(',');
    objGun.value = parca[0];
    objAy.value = parca[1];
    objYil.value = parca[2];

    MinimumTarihKontroluTarihIkili(objGun, objAy, objYil);
}

function TarihDegisti2(e) {
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun2'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy2'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil2'));

    var objTar2 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar2'));
    objTar2.value = objGun.value;

    var parca = objGun.value.split('.');
    objGun.value = parca[0];
    objAy.value = parca[1];
    objYil.value = parca[2];

    MaksimumTarihKontroluTarihIkili(objGun, objAy, objYil);
}

function Temizle1TarihTextBoxIkili(gonderen) {
    TextBoxFocusTarihIkili(gonderen, '');
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun1'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy1'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil1'));

    var objTar1 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar1'));
    objTar1.value = '';

    objGun.value = '';
    objAy.value = '';
    objYil.value = '';
    objGun.focus();
}

function Temizle2TarihTextBoxIkili(gonderen) {
    TextBoxFocusTarihIkili(gonderen, '');
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun2'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy2'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil2'));

    var objTar2 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar2'));
    objTar2.value = '';

    objGun.value = '';
    objAy.value = '';
    objYil.value = '';
    objGun.focus();

}

function BilgiPenceresiniAcTarihIkili(gonderen) {
    TextBoxFocusTarihIkili(gonderen, '');
    var objPanel = document.getElementById(DizinObje + 'PanelBilgi1');
    if (objPanel.style.display == 'none') objPanel.style.display = 'block'; else objPanel.style.display = 'none';
}

function Tarih1Guncelle(gonderen, ilgiliText) {
    TextBoxFocusTarihIkili(gonderen, '');
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun1'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy1'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil1'));

    TarihGecerlimiTarihIkili(objGun, objAy, objYil, ilgiliText);

    var objTar1 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar1'));
    if (objGun.value != '' && objAy.value != '' && objYil.value != '') {
        objTar1.value = objGun.value + "." + objAy.value + "." + objYil.value
        MinMaksTarKontroluYapTarihIkili(objGun, objAy, objYil, true, ilgiliText);
        objTar1.value = objGun.value + "." + objAy.value + "." + objYil.value
    }
    else
        objTar1.value = '';
}

function Tarih2Guncelle(gonderen, ilgiliText) {
    TextBoxFocusTarihIkili(gonderen, '');
    var objGun = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxGun2'));
    var objAy = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxAy2'));
    var objYil = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxYil2'));

    TarihGecerlimiTarihIkili(objGun, objAy, objYil, ilgiliText);

    var objTar2 = getObj(KontrolAdiniDuzenleTarihIkili('TextBoxTar2'));
    if (objGun.value != '' && objAy.value != '' && objYil.value != '') {
        objTar2.value = objGun.value + "." + objAy.value + "." + objYil.value
        MinMaksTarKontroluYapTarihIkili(objGun, objAy, objYil, false, ilgiliText);
        objTar2.value = objGun.value + "." + objAy.value + "." + objYil.value
    }
    else
        objTar2.value = '';
}

function MinMaksTarKontroluYapTarihIkili(objGun, objAy, objYil, minKontrol, ilgiliText) {
    if (objGun.value.length == 2 && objAy.value.length == 2 && objYil.value.length == 4) {
        var oYilMax = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMaksTarYil'));
        var oYilMin = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMinTarYil'));

        if (oYilMax.value != '' && !minKontrol) MaksimumTarihKontroluTarihIkili(objGun, objAy, objYil);
        if (oYilMin.value != '' && minKontrol) MinimumTarihKontroluTarihIkili(objGun, objAy, objYil);
    }
}

function MaksimumTarihKontroluTarihIkili(objGun, objAy, objYil) {

    var bugun = new Date();
    var maksTar = new Date();
    var oYil = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMaksTarYil'));
    var oAy = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMaksTarAy'));
    var oGun = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMaksTarGun'));

    maksTar.setFullYear(parseInt(oYil.value, 10), parseInt(oAy.value, 10) - 1, parseInt(oGun.value, 10));

    if (oAy.value.length < 2) oAy.value = '0' + oAy.value;
    if (oGun.value.length < 2) oGun.value = '0' + oGun.value;

    var SecilenTar = new Date();
    SecilenTar.setFullYear(parseInt(objYil.value, 10), parseInt(objAy.value, 10) - 1, parseInt(objGun.value, 10));

    var msg = oGun.value + '.' + oAy.value + '.' + oYil.value + ' tarihinden';
    if (maksTar.getTime() == bugun.getTime()) msg = 'bugünden';
    
    if (IntSeciliTarih(SecilenTar) > IntMinMaksTar(maksTar)) {
        alert('Tarihi ' + msg + ' büyük seçemezsiniz !');
        objGun.value = oGun.value;
        objAy.value = oAy.value;
        objYil.value = oYil.value;
    }
}

function IntSeciliTarih(SecilenTar) {
    var strSeciliTarih = SecilenTar.getTime() + '';
    var intSeciliTarih = parseInt(strSeciliTarih, 10);
    return intSeciliTarih;
}
function IntMinMaksTar(maksTar) {
    var strMaksTar = maksTar.getTime() + '';
    var intMaksTar = parseInt(strMaksTar, 10);
    return intMaksTar;
}

function MinimumTarihKontroluTarihIkili(objGun, objAy, objYil) {

    var bugun = new Date();
    var minTar = new Date();
    var oYil = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMinTarYil'));
    var oAy = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMinTarAy'));
    var oGun = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMinTarGun'));

    minTar.setFullYear(parseInt(oYil.value, 10), parseInt(oAy.value, 10) - 1, parseInt(oGun.value, 10));

    if (oAy.value.length < 2) oAy.value = '0' + oAy.value;
    if (oGun.value.length < 2) oGun.value = '0' + oGun.value;

    var SecilenTar = new Date();
    SecilenTar.setFullYear(parseInt(objYil.value, 10), parseInt(objAy.value, 10) - 1, parseInt(objGun.value, 10));

    var msg = oGun.value + '.' + oAy.value + '.' + oYil.value + ' tarihinden';
    if (minTar.getTime() == bugun.getTime()) msg = 'bugünden';

    if (IntSeciliTarih(SecilenTar) < IntMinMaksTar(minTar)) {
        alert('Tarihi ' + msg + ' küçük seçemezsiniz !');
        objGun.value = oGun.value;
        objAy.value = oAy.value;
        objYil.value = oYil.value;
    }
}

function TarihGecerlimiTarihIkili(objGun, objAy, objYil, ilgiliText) {
    //Girilen tarihin geçerliliğini kontrol eder. Örneğin, 30/02/2009 gibi bir tarih, şubat ayı 30 olamayacağından hatalıdır
    var gun = parseInt(objGun.value, 10);
    var ay = parseInt(objAy.value, 10);
    var yil = parseInt(objYil.value, 10);

    if (ilgiliText == 'gun') {
        if (objGun.value == '') return;
        if (gun < 1 || gun > 31) alert("Gün alanına 1 ile 31 arasında bir değer girilmelidir ! Bu nedenle girilen gün düzeltilecek.");
        if (gun < 1) gun = 1;
        if (gun > 31) gun = 31;
        gun = gun + '';
        if (gun.length < 2) gun = '0' + gun;
        objGun.value = gun;
    }

    if (ilgiliText == 'ay') {
        if (objAy.value == '') return;
        if (ay < 1 || ay > 12) alert("Ay alanına 1 ile 12 arasında bir değer girilmelidir ! Bu nedenle girilen ay düzeltilecek.");
        if (ay < 1) ay = 1;
        if (ay > 12) ay = 12;

        ay = ay + '';
        if (ay.length < 2) ay = '0' + ay;
        objAy.value = ay;
    }

    if (objYil.value.length == 4) {
        if ((ay == 4 || ay == 6 || ay == 9 || ay == 11) && gun == 31) {
            alert(ay + ". ay için seçilen gün hatalı ! Bu nedenle girilen gün düzeltilecek.")
            gun = gun - 1;
        }
        if (ay == 2) { // 29 şubatı kontrol et
            var subat29Yili = (yil % 4 == 0 && (yil % 100 != 0 || yil % 400 == 0));
            if (gun > 29 || (gun == 29 && !subat29Yili)) {
                alert("Şubat " + yil + ", " + gun + " gün içermiyor ! Bu nedenle girilen gün düzeltilecek.");
                if (!subat29Yili && gun == 31) gun = gun - 3;
                if (!subat29Yili && gun == 30) gun = gun - 2;
                if (!subat29Yili && gun == 29) gun = gun - 1;
                if (subat29Yili && gun == 31) gun = gun - 2;
                if (subat29Yili && gun == 30) gun = gun - 1;
            }
        }
        gun = gun + '';
        if (gun.length < 2) gun = '0' + gun;
        objGun.value = gun;
    }

    if (ilgiliText == 'yil') {
        //debugger;
        var oMinYil = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMinimumYil'));
        var oMaxYil = getObj(KontrolAdiniDuzenleTarihIkili('HiddenFieldMaksimumYil'));
        if (oMinYil.value == '') oMinYil.value = '0001';
        if (oMaxYil.value == '') oMaxYil.value = '9999';
        var minYil = parseInt(oMinYil.value, 10);
        var maxYil = parseInt(oMaxYil.value, 10);

        if (objYil.value == '') return; //{ var buYil = new Date; yil = buYil.getFullYear(); objYil.value = yil; }

        if (yil < minYil) {
            alert(minYil + " yılından küçük değer girilemez ! Bu nedenle girilen yıl düzeltilecek.");
            objYil.value = minYil;
        }
        if (yil > maxYil) {
            alert(maxYil + " yılından büyük değer girilemez ! Bu nedenle girilen yıl düzeltilecek.");
            objYil.value = maxYil;
        }
    }
}